package com.qiang;

import com.qiang.domain.Manager;
import com.qiang.domain.Subway;

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class SystemDemo {
    /*
    当管理人员登录成功后,给出选项提示,根据管理人员的选择,执行后续的操作

要求：

     3.1. 给出提示: 1.查看地铁站 2.添加地铁站

     3.2. 获取管理人员输入的选择

     3.3. 根据管理人员的选择,执行对应的操作
     */
    public static void main(String[] args) throws IOException {
        //首先读取管理人员的名单


        //新建一个集合，用来存存储管理人员的信息
        ArrayList<Manager> list = new ArrayList<>();


        //按行读取
        BufferedReader br = new BufferedReader(new FileReader("kaoshi\\manager.txt"));

        String s;
        while ((s = br.readLine()) != null) {
            System.out.println(s);
            String[] sp = s.split(",");
            Manager ma = new Manager(sp[0], sp[1], sp[2], sp[3]);
            list.add(ma);
        }


        //去读并存储管理人员信息完毕
        br.close();

        //读取地铁站信息

        ArrayList<Subway> array = new ArrayList<>();
        Subway su = new Subway();
        BufferedReader fr2 = new BufferedReader(new FileReader("kaoshi\\subway.txt"));
        String s1;
        while ((s1 = fr2.readLine()) != null) {
            String[] s2 = s1.split(",");
            su = new Subway(s2[0], s2[1], s2[2]);
            array.add(su);
        }

        //读取地铁站信息完毕
        fr2.close();

        lo:
        while (true) {
            //输入工号和姓名，判断是否登录成功
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入工号");
            String id = sc.next();
            System.out.println("请输入姓名");
            String name = sc.next();

            //遍历集合，判断是否有符合条件的内容
            //登陆成功的话，显示地铁站信息


            for (int i = 0; i < list.size(); i++) {
                if (list.size() != 0) {
                    if (id.equals(list.get(i).getId()) && name.equals(list.get(i).getName())) {
                        //如果工号相同，判断是否名字相同
                        //if (name.equals(list.get(i).getName())) {
                        System.out.println("登陆成功");
                        //显示地铁站信息

                        System.out.println("======欢迎来到地铁管理信息系统======");
                        System.out.println("1-查看地铁站");
                        System.out.println("2-添加地铁站");
                        System.out.println("3-退出系统");
                        System.out.println("请输入您的选择");
                        int j = sc.nextInt();
                        switch (j) {
                            case 1:
                                getMessage();
                                break lo;
                            case 2:
                                addSubways(array, su, sc);
                                break lo;
                            case 3:
                                System.exit(0);
                        }
                    } /*else {
                        System.out.println("输入错误，请重新输入");
                        break;
                    }*/

                } else {
                    System.out.println("查无信息");
                }
            }
            System.out.println("请重新输入");
        }
    }

    public static void getMessage() throws IOException {
        ArrayList<Subway> array;
        Subway su;
        BufferedReader fr2;
        String s1;
        array = new ArrayList<>();
        su = new Subway();
        fr2 = new BufferedReader(new FileReader("kaoshi\\subway.txt"));
        while ((s1 = fr2.readLine()) != null) {
            String[] s2 = s1.split(",");
            su = new Subway(s2[0], s2[1], s2[2]);
            array.add(su);
        }
        //读取地铁站信息完毕
        fr2.close();
        findSubways(array);
    }

    private static void findSubways(ArrayList<Subway> array) {
        System.out.println("地铁站编号" + "\t" + "\t" + "地铁站名称" + "\t" + "\t" + "所属路线");
        for (Subway subway : array) {
            System.out.println(subway.getSid() + "\t" + "\t" + "\t" + subway.getSname() + "\t" + "\t" + "\t" + subway.getSline());
        }
    }

    private static void addSubways(ArrayList<Subway> array, Subway su, Scanner sc) throws IOException {
        while (true) {
            System.out.println("请输入要添加的地铁站编号");
            String newId = sc.next();
            for (int i1 = 0; i1 < array.size(); i1++) {
                if (array.get(i1) != null && !(newId.equals(array.get(i1).getSid()))) {
                    System.out.println("请输入地铁站名称");
                    String newName = sc.next();

                    System.out.println("请输入地铁站线路");
                    String newLine = sc.next();
                    //把输入的信息，添加到集合中
                    su.setSid(newId);
                    su.setSname(newName);
                    su.setSline(newLine);
                    array.add(su);


                    //需要写到本地文件
                    BufferedWriter bfw = new BufferedWriter(new FileWriter("kaoshi\\subway.txt", true));

                    //遍重新写入内容，覆盖掉原来的内容
                    bfw.write(newId);
                    bfw.write(',');
                    bfw.write(newName);
                    bfw.write(',');
                    bfw.write(newLine);
                    bfw.write("\r\n");
                    bfw.close();

                    System.out.println("添加成功");


                    return;

                    //添加完毕
                } else {
                    System.out.println("您输入的id已经存在，请重新输入");
                }
            }
        }
    }
}
